package com.lvy.hczn.transmit.domain.dto.cteck;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单商品信息
 *
 * @author YinHuaWei
 */
@Data
public class MasterOrderGoods implements Serializable {

    private static final long serialVersionUID = 5808189622686636440L;

    /**
     *
     */
    private Long id;

    /**
     * 商品关联的发货仓库编码，没有填default
     */
    private String depotCode;

    /**
     * 主订单编码
     */
    private String masterOrderSn;
    /**
     * 主订单编码集合
     */
    private List<String> masterOrderSnList;

    /**
     * 子订单编码
     */
    private String orderSn;

    /**
     * 商品名称，取值open_goods表的goods_name
     */
    private String goodsName;

    /**
     * 11位码
     */
    private String customCode;

    /**
     * 商品的扩展属性，common：正品；gift：赠品；group：套装；
     * prize：奖品；c2m：C2M订制，c2b：C2B订制
     */
    private String extensionCode;

    /**
     * 拆分后商品行
     */
    private String extensionId;

    /**
     * 商品的购买数量
     */
    private Integer goodsNumber;

    /**
     * 商品总重量
     */
    private BigDecimal weightCount;

    /**
     * 商品的本店售价，取值open_goods表的shop_price
     */
    private Double goodsPrice;

    /**
     * 商品的成交价
     */
    private Double transactionPrice;

    /**
     * 商品的结算价格
     */
    private BigDecimal settlementPrice;

    /**
     * 商品的折扣
     */
    private Float discount;

    /**
     * 使用积分金额
     */
    private Double integralMoney;

    /**
     * 使用积分数量
     */
    private Integer integral;

    /**
     * 活动名称
     */
    private String groupName;

    /**
     * 分类名称
     */
    private String cateName;

    /**
     * 尺码名称
     */
    private String goodsSizeName;

    /**
     * 颜色名称
     */
    private String goodsColorName;

    /**
     * 产品图片
     */
    private String goodsThumb;

    /**
     * 占用库存数量
     */
    private Integer sendNumber;

    /**
     * 父商品sn，如果存在，该不允许单独删除
     */
    private String parentSn;

    /**
     * 2013年1月11号赋予含义，0 价格正常 1 价格低于保底价 2 价格低于吊牌价折扣后价格
     */
    private String mergeFrom;

    /**
     * 换货商品
     */
    private String exchangeFrom;

    /**
     * 该商品参加的促销信息描述
     */
    private String promotionDesc;

    /**
     * 等级积分
     */
    private Double rankPoints;

    /**
     * 消费积分
     */
    private Double payPoints;

    /**
     * 商品打折券,":"分割
     */
    private String useCard;

    /**
     * 商品分摊红包金额
     */
    private Double shareBonus;

    /**
     * 商品分摊余额金额
     */
    private Double shareSurplus;

    /**
     * 定制商品生产标识:0未生产,1已生产 默认为 0
     */
    private Integer madeFlag;

    /**
     * 门店退单商品数量
     */
    private Integer chargeBackCount;

    /**
     * 商品预留货位
     */
    private String containerid;

    /**
     * 导购
     */
    private String selleruser;

    /**
     * 是否被删除0否1是
     */
    private Integer isDel;

    /**
     * 促销id
     */
    private String promotionId;

    /**
     * 定制化属性
     */
    private String c2mItem;

    /**
     * 保护价标志 0：价格正常 1：价格低于保底价
     */
    private Integer protectFalg;

    /**
     * 供应商编码
     */
    private String supplierCode;

    /**
     * 供应商编码
     */
    private String supplierName;

    /**
     * 商品的市场售价，取值product_goods表的market_price
     */
    private Double marketPrice;

    /**
     * 商品6位码
     */
    private String goodsSn;

    /**
     * 商品销售模式：1为自营，2为买断，3为寄售，4为直发
     */
    private Integer salesMode;

    /**
     * 平台占用库存数量
     */
    private Integer channelSendNumber;

    /**
     * SAP编码
     */
    private String sap;

    /**
     * 订单商品bv
     */
    private String bvValue;

    /**
     * 预计发货日 格式 YYYY-MM-DD
     */
    private String expectedShipDate;

    /**
     * 综合税费
     */
    private Double tax;

    /**
     * 综合税率
     */
    private Double taxRate;

    /**
     * 基础bv
     */
    private Integer baseBvValue;

    /**
     * 进项税
     */
    private Double inputTax;

    /**
     * 销项税
     */
    private Double outputTax;

    /**
     * 成本价
     */
    private Double costPrice;

    /**
     * 箱规
     */
    private Short boxGauge;

    /**
     * 配送周期信息(1,2,3)
     */
    private String distributionCategory;

    /**
     * 外部sku编码
     */
    private String sellerCustomCode;

    /**
     * 外部商品编码
     */
    private String sellerGoodsSn;

    /**
     * 最小购买量
     */
    private Integer minBuyNum;

    /**
     * 已发数量
     */
    private Integer alreadyNum;

    /**
     * 未发数量
     */
    private Integer unissuedNum;

    /**
     * 客户物料编码
     */
    private String customerMaterialCode;

    /**
     * 物料描述
     */
    private String customerMaterialName;

    /**
     * 购买单位
     */
    private String buyUnit;

    /**
     * 发货周期
     */
    private String deliveryCycle;

    /**
     * 商品销售属性
     */
    private String goodsProp;

    /**
     * 商品基础属性
     */
    private String basicAttr;

    /**
     * 快递单号
     */
    private String invoiceNo;

    /**
     * 采购申请编号
     */
    private String buyerNo;

    /**
     * 采购申请行号
     */
    private String buyerLineNo;

    /**
     * 件重
     */
    private BigDecimal pieceWeight;

    /**
     * 运费
     */
    private Double shippingFee;

    private Integer flag;

    /**
     * 合同号
     */
    private String customerContractNum;

    /**
     * 材质
     */
    private String material;

    /**
     * 品名
     */
    private String productTypeName;

    private String userId;

    private Integer orderStatus;

    /**
     * 支付总状态 0，未付款；1，部分付款；2，已付款；3，已结算
     */
    private Integer payStatus;

    private Integer shipStatus;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 店铺编码
     */
    private String shopCode;

    /**
     * 订单总金额
     */
    private BigDecimal totalFee;

    /**
     * 订单营销金额
     */
    private BigDecimal marketingAmount;

    /**
     * 商品营销金额
     */
    private BigDecimal marketingShopAmount;

    private String depotName;

    private String depotId;

    private String sellType;

    private BigDecimal transactionUnitPrice;

    private BigDecimal sendWeight;

    private BigDecimal totalPieceWeight;
    /**
     * 商品明细
     */
    private List<MasterOrderGoods> goodsList;

    /**
     * 计量方式
     *
     * @return
     */
    private String saleMethod;

    /**
     * 预售设置 (0未开启、1开启预售,2无库存下单)
     */
    private Integer presaleType;

    /**
     * 缺货量
     */
    private BigDecimal outStock;

    /**
     * 结算单价/吨
     */
    private BigDecimal settlementUnitPrice;

    /**
     * 活动id
     */
    private String activeId;

    /**
     * 活动类型(1新品,2尾单,10:拼团,111预售,112新人专享,113限时特惠,114库存价售罄,115订单返现,116积分兑换,117免单)
     */
    private String activeType;

    /**
     * 限时特惠
     */
    public static final String PROMOTION_STOCK_LIMIT = "113";

    /**
     * 订单返现活动id
     */
    private String cashId;

    /**
     * 返现金额
     */
    private BigDecimal backMoney;

    /**
     * 商品编码
     */
    private String productSellerCode;

    /**
     * 批次号
     */
    private String virtualLn;

    /**
     * 商品类型
     * 1普通商品、9虚拟商品、10客房、
     * 11门票、15餐饮券 21卡密/网盘商品
     */
    private Short salesType;
}
